"""
功能描述 ：
编写人 ：
编写日期 ：
实现逻辑 ：
    1- ......
        1.1- ......
    2- ......
        2.1- ......
"""
"""
定义一个对外的函数:log
    1.1 使用basicconfig配置日志
    1.2 获取一个日志记录器:test
    1.3 返回日志记录器给外界使用
"""

import logging
import os

# # 定义一个对外的函数:log
# def log():
#     logging.basicConfig(level=logging.ERROR,
#                         encoding="utf-8",
#                         filename="日志.txt",
#                         format="日志:%(name)s-级别:%(levelname)s-时间%(asctime)s-模块%(module)s.py-第%(lineno)d行:%(message)s")
#
#
# # # 1.2 获取一个日志记录器:test
#     logger = logging.Logger("Test")
#     # 1.3 返回日志记录器给外界使用
#     return logger
#-------------------------------------------
"""
步骤分析:
1.配置日志记录器名称
2.配置日志级别
3.配置日志格式(可以分别配置,也可以统一配置)
4.创建并添加handler-控制台
5.创建并添加handler-文件
6.对外提供日志记录器
"""
# 获取日志目录
log_path = os.path.dirname(os.path.dirname(__file__))+r"/testLog/"

def log():
    # 1.配置日志记录器名称
    logger = logging.getLogger('Test')
    # 2.配置日志级别
    logger.setLevel(logging.ERROR)
    # 3.配置日志格式(可以分别配置,也可以统一配置)
    format = logging.Formatter("日志:%(name)s-级别:%(levelname)s-时间%(asctime)s-模块%(module)s.py-第%(lineno)d行:%(message)s")
    # 4.创建并添加handler-控制台
    sh = logging.StreamHandler()
    sh.setFormatter(format)
    logger.addHandler(sh)
    # 5.创建并添加handler-文件
    fh = logging.FileHandler(log_path + r"test.txt", encoding="utf-8")
    fh.setFormatter(format)
    logger.addHandler(sh)
    # 6.对外提供日志记录器
    return logger
#单例模式
logger = log()

if __name__ == '__main__':
    logger = log()
    logger.debug("我是debug级别")
    logger.info("我是info级别")
    logger.critical("我是灾难")